﻿#pragma once

#include "geom/geom_curve_bezier.h"
#include "geom/geom_curve_bspline.h"
#include "geom/geom_surface_bspline.h"

namespace CAGD
{

class Interpolate
{
  public:
    /**
     * @brief 3 维 插值控制点的 3 次样条曲线.
     * @return
     * @param points
     * @see
     */
    static Handle(GeomBSplineCurve) BSplineCurve3(const std::vector<BPnt> &points);

    /**
     * @brief 3 维双 3 次样条曲面插值.
     * @return
     * @param points
     * @see
     */
    static Handle(GeomBSplineSurface) BSplineSurface3x3(const std::vector<std::vector<BPnt>> &points);
};

} // namespace CAGD
